<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>


    <meta http-equiv="content-type" content="text/html; charset=utf-8">
<title>Menu Buttons</title>

<style type="text/css">
/*margin and padding on body element
  can introduce errors in determining
  element position and are not recommended;
  we turn them off as a foundation for YUI
  CSS treatments. */
body {
	margin:0;
	padding:0;
}
</style>

<link rel="stylesheet" type="text/css" href="../../build/fonts/fonts-min.css" />
<link rel="stylesheet" type="text/css" href="../../build/menu/assets/skins/sam/menu.css" />
<link rel="stylesheet" type="text/css" href="../../build/button/assets/skins/sam/button.css" />
<script type="text/javascript" src="../../build/yahoo-dom-event/yahoo-dom-event.js"></script>
<script type="text/javascript" src="../../build/container/container_core-min.js"></script>
<script type="text/javascript" src="../../build/menu/menu-min.js"></script>
<script type="text/javascript" src="../../build/element/element-min.js"></script>
<script type="text/javascript" src="../../build/button/button-min.js"></script>


<!--begin custom header content for this example-->
<style type="text/css">

    /*
        Set the "zoom" property to "normal" since it is set to "1" by the 
        ".example-container .bd" rule in yui.css and this causes a Menu
        instance's width to expand to 100% of the browser viewport.
    */
    
    div.yuimenu .bd {
    
        zoom: normal;
    
    }

    #button-example-form fieldset {

        border: 2px groove #ccc;
        margin: .5em;
        padding: .5em;

    }

    #menubutton3menu,
    #menubutton4menu {
    
        position: absolute;
        visibility: hidden;
        border: solid 1px #000;
        padding: .5em;
        background-color: #ccc;
    
    }

    #button-example-form-postdata {
    
        border: dashed 1px #666;
        background-color: #ccc;
        padding: 1em;
    
    }

    #button-example-form-postdata h2 {
    
        margin: 0 0 .5em 0;
        padding: 0;
        border: none;
    
    }

</style>
<!--end custom header content for this example-->

</head>

<body class="yui-skin-sam">


<h1>Menu Buttons</h1>

<div class="exampleIntro">
	<p>This example demonstrates different ways to create and use a Menu Button.</p>			
</div>

<!--BEGIN SOURCE CODE FOR EXAMPLE =============================== -->

<script type="text/javascript">

	//	"contentready" event handler for the "menubuttonsfrommarkup" <fieldset>

	YAHOO.util.Event.onContentReady("menubuttonsfrommarkup", function () {

		//	Create a Button using an existing <input> and <select> element.
		//	Because the "type" attribute of the <input> element was set to 
		//	"submit" - clicking on any MenuItem in the Button's Menu will
		//	automatically submit the Button's parent <form>.

		var oMenuButton1 = new YAHOO.widget.Button("menubutton1", 
								{ type: "menu", menu: "menubutton1select" });
		

		//	"render" event handler for the Button's Menu

		var onMenuRender = function (p_sType, p_aArgs) {
		
			this.addItems([

				{ text: "Four", value: 4 },
				{ text: "Five", value: 5 }

			]);
			
		};


		//	Add some additional MenuItems to the Button's Menu once it has 
		//	been rendered
		
		oMenuButton1.getMenu().subscribe("render", onMenuRender);
		

		//	"submit" event handler for the <form>

		var onExampleSubmit = function(p_oEvent) {

			var bSubmit = 
					window.confirm("Are you sure you want to submit the form?");

			if(!bSubmit) {
				YAHOO.util.Event.preventDefault(p_oEvent);
			}

		};


		//	Add a "submit" event handler to the <form> to confirm that 
		//	clicking on one of the MenuItems in the Button's Menu 
		//	submits the <form>.

		YAHOO.util.Event.on("button-example-form", "submit", onExampleSubmit);


		//	Create a Button using an existing <input> and <select> element

		var oMenuButton2 = new YAHOO.widget.Button("menubutton2", 
								{ type: "menu", menu: "menubutton2select" });


		//	"click" event listener for the second Button's Menu instance

		var onMenuClick = function (p_sType, p_aArgs) {

			var oEvent = p_aArgs[0],	//	DOM event

				oMenuItem = p_aArgs[1];	//	MenuItem instance that was the 
										//	target of the event

			if (oMenuItem) {
				YAHOO.log("[MenuItem Properties] text: " + 
							oMenuItem.cfg.getProperty("text") + ", value: " + 
							oMenuItem.value);
			}

		};


		//	Add a "click" event listener for the Button's Menu

		oMenuButton2.getMenu().subscribe("click", onMenuClick);


		//	Create a Button using an existing <input> element and a 
		//	YAHOO.widget.Overlay instance as its menu

		var oMenuButton3 = new YAHOO.widget.Button("menubutton3", 
								{ type: "menu", menu: "menubutton3menu" });


		//	"click" event listener for the third Button's 
		//	menu (Overlay instance)

		var onOverlayClick = function (p_oEvent) {
			
			YAHOO.log("You clicked the Button's menu.");
			
		};


		//	Add a "click" event listener to the Button's menu (Overlay instance)

		YAHOO.util.Event.on(oMenuButton3.getMenu().element, 
								"click", onOverlayClick);


		//	"show" event listener for the third Button's menu (Overlay instance)

		var onOverlayShow = function (p_sType, p_aArgs) {
		
			YAHOO.log("The Button's menu is now visible.");
			
		};
		

		//	Add a listener for the Button's "show" event
		
		oMenuButton3.getMenu().subscribe("show", onOverlayShow);

	});



	//	Search for an element to place the Menu Button into via the 
	//	Event utility's "onContentReady" method

	YAHOO.util.Event.onContentReady("menubuttonsfromjavascript", function () {

		//	Create two Buttons without using existing markup


		// Instantiate an Overlay instance

		var oOverlay = new YAHOO.widget.Overlay("menubutton4menu", 
													{ visible: false });

		oOverlay.setBody("Menu Button 4 Menu");


		// Instantiate a Menu Button

		var oMenuButton4 = new YAHOO.widget.Button({	type: "menu", 
														label: "Menu Button 4", 
														menu: oOverlay, 
														container: this });


		//	"click" event handler for each item in the Button's menu

		var onMenuItemClick = function (p_sType, p_aArgs, p_oItem) {
			
			var sText = p_oItem.cfg.getProperty("text");
			
			YAHOO.log("[MenuItem Properties] text: " + sText + ", value: " + 
					p_oItem.value);
			
    		oMenuButton5.set("label", sText);			

		};


		//	Create an array of YAHOO.widget.MenuItem configuration properties

		var aMenuButton5Menu = [

			{ text: "One", value: 1, onclick: { fn: onMenuItemClick } },
			{ text: "Two", value: 2, onclick: { fn: onMenuItemClick } },
			{ text: "Three", value: 3, onclick: { fn: onMenuItemClick } }

		];


		//	Instantiate a Menu Button using the array of YAHOO.widget.MenuItem 
		//	configuration properties as the value for the "menu"  
		//	configuration attribute.

		var oMenuButton5 = new YAHOO.widget.Button({	type: "menu", 
														label: "One", 
														name: "mymenubutton", 
														menu: aMenuButton5Menu, 
														container: this });

	});

</script>


<form id="button-example-form" name="button-example-form" method="post">

    <fieldset id="menubuttons">
        <legend>Menu Buttons</legend>

        <fieldset id="menubuttonsfrommarkup">
            <legend>From Markup</legend>
            
            <input type="submit" id="menubutton1" name="menubutton1_button" value="Menu Button 1">
            <select id="menubutton1select" name="menubutton1select">
                <option value="0">One</option>
                <option value="1">Two</option>
                <option value="2">Three</option>                
            </select>


            <input type="button" id="menubutton2" name="menubutton2_button" value="Menu Button 2">
            <select id="menubutton2select" name="menubutton2select">
                <option value="0">One</option>
                <option value="1">Two</option>
                <option value="2">Three</option>                
            </select>

            <input type="button" id="menubutton3" name="menubutton3_button" value="Menu Button 3">
            <div id="menubutton3menu" class="yui-overlay">
                <div class="bd">Menu Button 3 Menu</div>
            </div>

        </fieldset>

        <fieldset id="menubuttonsfromjavascript">
            <legend>From JavaScript</legend>
        </fieldset>
        
    </fieldset>

</form>
<!--END SOURCE CODE FOR EXAMPLE =============================== -->

</body>
</html>
